The present invention relates to computer software, and in particular, to a system and method of multithreaded processing across multiple servers.
The growing prevalence of computer systems and data processing has led to a corresponding increase in the amount of data to be processed and the complexity of the processing steps that are carried out by a computer system. For example, a large company may include thousands or tens of thousands of employees engaged in hundreds or even thousands of transactions on a daily basis. With the growth of computer systems, companies have relied more and more on computer software for tracking data relating to each employee and the transactions carried out by employees for the company. An employee may have access to numerous software applications used by the company for performing a variety of transactions, and the transactions performed by each software application may include numerous complex processing steps on a variety of data sets.
Data to be processed is typically stored in one or more data repositories (e.g., databases) and the processing steps performed on selected sets of data are carried out on powerful computer systems, such as a server, which may load the application, access the data, and execute operations on the data. However, as the amount of data and the complexity of the data processing operations increases, the time for any given computer system to execute a desired function can increase substantially. In many cases, the execution time of an application or processing function may be a critical factor in evaluating the desirability of a software system. If the time to process the data is too long, the software may have limited value to an organization despite the results the software is able to produce.
One specific application where both the amount of data and the complexity of the data processing steps has caused in increase in processing time is a Risk Analysis software application. In a Risk Analysis software application, information about employees in the company may be accessed and analyzed to determine if any particular user is in a position to perpetrate a fraud or theft or other unlawful act. For instance, a Risk Analysis application may gather data about a user including the software systems the user has access to and the activities the user may perform on each software system (e.g., administrative permissions), for example, and the system may apply predefined rules against the user data to determine if the company or organization is exposed to a risk as a result of the user's software system usage and access. However, performing a risk analysis for a company with tens of thousands of users may involve retrieving data from multiple databases and applications for each user and applying the data against complex risk analysis rules to evaluate risk. If these tasks cannot be done in a timely manner, the value of the risk analysis software may be limited.
Thus, there is a need for improved techniques for increasing the speed and efficiency of data processing. The present invention solves these and other problems by providing a system and method of multithreaded processing across multiple servers.